package com.gpframework.common.pay.leshua.exception;
/**
 * @author eden
 * @date 2018/5/21 下午3:36
 * @desc
 */
public class BizRuntimeException extends RuntimeException {

	private static final long serialVersionUID = -8978216902301079673L;

	/** 通用错误码 **/
	public static final String GENERIC_ERR = "50000";
	
	/** 错误代码 **/
	private String errorCode;

	/**
	 * 构造方法，使用通用的错误码
	 * @param message
	 */
	public BizRuntimeException(String message) {
		super(message);
		this.errorCode = GENERIC_ERR;
	}

	/**
	 * 构造方法，使用指定的错误码
	 * @param errorCode
	 * @param message
	 */
	public BizRuntimeException(String errorCode, String message) {
		super(message);
		if (errorCode == null) {
			errorCode = GENERIC_ERR;
		}
		this.errorCode = errorCode;
	}
	
	/**
	 * 构造方法，使用枚举的错误码
	 * @param errCodeEnum
	 */
	public BizRuntimeException(ErrorCodeEnum errCodeEnum) {
		this(errCodeEnum.getErrCode(), errCodeEnum.getErrMsg());
	}

	/**
	 * 构造方法，且打印异常原因
	 * @param errorCode
	 * @param message
	 * @param cause
	 */
	public BizRuntimeException(String errorCode, String message, Throwable cause) {
		super(message, cause);
		this.errorCode = errorCode;
	}

	/**
	 * 构造方法，且打印异常原因，但不输出提示文本
	 * @param errorCode
	 * @param cause
	 */
	public BizRuntimeException(String errorCode, Throwable cause) {
		super(cause);
		this.errorCode = errorCode;
	}

	/**
	 * 得到异常码
	 * @return
	 */
	public String getErrorCode() {
		return errorCode;
	}

}
